const path = require("path");
const fs = require("fs");
const user = require("../../database/user");

module.exports = (req,res,next)=>{
  const {uId} = req.body;

  if(req.uId !== uId && req.power !== 0){
    res.send({
      code:4,
      msg:"权限不够"
    })
    return;
  }

  if(!uId || req.files.length<1){
    res.send({
      code:3,
      msg:"缺少必传参数：uId, 头像文件"
    })
    return;
  }

  // 从当前服务器上找到要改名的文件
  const oldName = path.join(__dirname, "..", "..", req.files[0].path);
  // 修改成：现文件名-上传之前名.扩展名的形式
  const newName = oldName + "-" + req.files[0].originalname;

  // 使用fs的改名方法，进行改名
  fs.rename(oldName, newName, async ()=>{
    // 将该文件的地址，拼接成服务器中的静态资源地址，响应给前端，及存入数据库
    const resUrl = "http://localhost:3000/" + newName.split(/upload(?:\/|\\)/)[1];

    // 修改数据库信息
    await user.updateOne({uId}, {avatar: resUrl});
    // 响应给前端
    res.send({
      code: 1,
      msg:  "修改成功",
      avatarUrl: resUrl
    })
  })
}